package com.py.framework.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.py.framework.entity.WorkFlowRole;

/**
 * 工作流角色管理Dao
 * @author Leegern
 * @date   2018年5月23日
 */
public interface WorkFlowRoleDao {
	
	/**
	 * 添加工作角色实体
	 * @param entity 工作角色实体
	 * @return
	 */
	int addWorkFlowRole(WorkFlowRole entity);
	
	/**
	 * 分页查询工作角色列表
	 * @param params
	 * @return
	 */
	List<WorkFlowRole> queryWorkFlowRoleForPage(Map<String, Object> params);
	
	/**
	 * 根据区域Id获取工作角色信息
	 * @param id  工作角色Id
	 * @return
	 */
	WorkFlowRole findOneWorkFlowRole(@Param("id")long id);
	
	/**
	 * 获取所有工作流角色数据
	 * @return
	 */
	List<WorkFlowRole> getAllWorkFlowRoles();
	
	/**
	 * 更新工作角色信息
	 * @param entity 工作角色实体
	 * @return
	 */
	int updateWorkFlowRole(WorkFlowRole entity);
	
	/**
	 * 批量删除工作角色
	 * @param ids 工作角色Id集合
	 * @return
	 */
	int batchDelWorkFlowRole(Map<String, Object> params);
	
	/**
	 * 判断是否有重复数据
	 * @param roleName  角色名称
	 * @param key       键
	 * @return
	 */
	List<WorkFlowRole> isExistWorkFlowRole(Map<String, Object> params);
	
	/**
	 * 根据用户Id获取工作流角色
	 * @param userId 用户Id
	 * @return
	 */
	List<WorkFlowRole> getWorkFlowRoleByUserId(long userId);
	
	/**
	 * 添加工作流角色与用户关联数据
	 * @param entity
	 * @return
	 */
	int addWFRoleUser(WorkFlowRole entity);
	
	/**
	 * 删除工作流角色与用户关联数据
	 * @param userId 用户Id
	 * @param roleId 工作流角色Id
	 * @return
	 */
	int delWFRoleUser(Map<String, Object> params);
	
	/**
	 * 查询工作流角色与用户关联数据
	 * @param roleId 工作流角色Id
	 * @return
	 */
	List<WorkFlowRole> getWFRoleUserById(@Param("roleId")long roleId);
}